#ifndef TILEMANAGER_H_
#define TILEMANAGER_H_

#include <e32base.h>
#include "tile.h"
#include "tilecallbacklistener.h"

/**
 * Tile管理器, 如果想自定度切图数据的处理方式, 则要实现些接口
 * 然后在{@link Map#setTileManager(TileManager)} 使用
 * @author Jjyo
 */
class TileManager 
	{
	/**
	 * 保存切图数据接品, 新的切图数据从网络返回时会被调用
	 * @param tile
	 */
	virtual void SaveTileData(const Tile& tile) = 0;
	
	/**
	 * 取切图数据, 基于回调方式
	 * @param listneer
	 * @param tile
	 */
	virtual void GetTileData(const TileCallBackListener& listneer, const Tile& tile) = 0;
	
	/**
	 * 判断切图数据是否存在
	 * @param tile
	 * @return
	 */
	virtual TBool IsTileDataExist(const Tile& tile) = 0;
	}

#endif /* TILEMANAGER_H_ */
